#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QColorDialog>
#include<QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
//    QColorDialog* dialog = new QColorDialog(this);
//    dialog->exec();
//    delete dialog;
    //这种方式虽然可以但是一般不会这用

    QColor color = QColorDialog::getColor(QColor(0, 255, 0), this, "颜色？");
    //此时函数的返回值就是用户选择的颜色
    qDebug() << color;

    //可以基于用户选择的颜色，修改窗口背景色或修改其他可以修改的颜色
    //通过QSS方式设置背景色？
//    QString style = "background-color: rgb(" + QString::number(color.red()) + "," + QString::number(color.green())
//            + "," + QString::number(color.blue()) + ")";
    //通过style传入setStyleSheet设置，怎么连接调色板？获取到color对应的值
    //然后转类型通过background-color进行设置，注意加上rgb设置颜色

    char style[1024] = { 0 };
    sprintf(style, "background-color: rgb(%d, %d, %d);", color.red(), color.green(), color.blue());
    //sprintf为c标准库提供的格式化字符串拼接，用red green blue替换掉%d
    //char style[1024] = { 0 }; 可以直接用来构造QString，相当于一个隐式的QString对象
    this->setStyleSheet(style);
}
